Squid是用于運行 HTTP 代理的軟件。在本文中,我們將展示如何安裝和配置 Squid 代理服務器。要開始安裝,請通過 SSH 連接到服務器并運行以下命令。
中央操作系統:
[root@proxy ~]# yum -y install squid
Ubuntu/Debian:
[root@proxy ~]# apt-get -y install squid
清理 Squid 配置文件。
[root@proxy ~]# cat /dev/null > /etc/squid/squid.conf
導航到 Squid 目錄并打開其配置文件。
[root@proxy ~]# cd /etc/squid/ [root@proxy squid]# vi squid.conf
通過按鍵盤上的 Insert 并輸入以下內容開始編輯配置文件。
中央操作系統:
auth_param 基本程序 /usr/lib64/squid/basic_ncsa_auth /etc/squid/squid_users auth_param 基本兒童 5 auth_param 基本領域 Auth auth_param 基本憑據ttl 1 小時 acl ncsa_users proxy_auth 需要 ignore_expect_100 on access_log /var/log/squid/access.log 魷魚 server_persistent_connections 關閉 dns_v4_first 開啟 可見主機名本地主機 緩存拒絕所有 http_port 17102 acl proxy_user_acl proxy_auth proxy_user acl ip_1 myip 2.58.28.45 tcp_outgoing_address 2.58.28.45 http_access 允許 proxy_user_acl ip_1 forwarded_for 關閉 request_header_access 允許 允許所有 request_header_access 授權允許所有 request_header_access WWW-Authenticate 允許所有 request_header_access 代理授權允許所有 request_header_access Proxy-Authenticate allow all request_header_access 緩存控制允許所有 request_header_access 內容編碼允許所有 request_header_access 內容長度允許所有 request_header_access 內容類型允許所有 request_header_access 日期允許所有 request_header_access 過期允許所有 request_header_access 主機允許所有 request_header_access If-Modified-Since 允許所有 request_header_access Last-Modified 允許所有 request_header_access 位置允許所有 request_header_access Pragma 允許所有 request_header_access 接受 允許所有 request_header_access Accept-Charset 允許所有 request_header_access Accept-Encoding 允許所有 request_header_access Accept-Language allow all request_header_access 內容語言允許所有 request_header_access Mime-Version 允許所有 request_header_access Retry-After allow all request_header_access 標題允許所有 request_header_access 連接允許所有 request_header_access 代理連接允許所有 request_header_access 用戶代理允許所有 request_header_access Cookie 允許所有 request_header_access Set-Cookie 允許所有
Ubuntu/Debian:
auth_param 基本程序 /usr/lib/squid/basic_ncsa_auth /etc/squid/squid_users auth_param 基本兒童 5 auth_param 基本領域 Auth auth_param 基本憑據ttl 1 小時 acl ncsa_users proxy_auth 需要 ignore_expect_100 on access_log /var/log/squid/access.log 魷魚 server_persistent_connections 關閉 dns_v4_first 開啟 可見主機名本地主機 緩存拒絕所有 http_port 17102 acl proxy_user_acl proxy_auth proxy_user acl ip_1 myip 2.58.28.45 tcp_outgoing_address 2.58.28.45 http_access 允許 proxy_user_acl ip_1 forwarded_for 關閉 request_header_access 允許 允許所有 request_header_access 授權允許所有 request_header_access WWW-Authenticate 允許所有 request_header_access 代理授權允許所有 request_header_access Proxy-Authenticate allow all request_header_access 緩存控制允許所有 request_header_access 內容編碼允許所有 request_header_access 內容長度允許所有 request_header_access 內容類型允許所有 request_header_access 日期允許所有 request_header_access 過期允許所有 request_header_access 主機允許所有 request_header_access If-Modified-Since 允許所有 request_header_access Last-Modified 允許所有 request_header_access 位置允許所有 request_header_access Pragma 允許所有 request_header_access 接受 允許所有 request_header_access Accept-Charset 允許所有 request_header_access Accept-Encoding 允許所有 request_header_access Accept-Language allow all request_header_access 內容語言允許所有 request_header_access Mime-Version 允許所有 request_header_access Retry-After allow all request_header_access 標題允許所有 request_header_access 連接允許所有 request_header_access 代理連接允許所有 request_header_access 用戶代理允許所有 request_header_access Cookie 允許所有 request_header_access Set-Cookie 允許所有
按鍵盤上的 Esc 和 :wq 鍵保存并關閉文件。
我們還需要 htpasswd 實用程序來為我們的代理用戶生成密碼。為此,請安裝 httpd-tools 包。
中央操作系統:
[root@proxy squid]# yum install -y httpd-tools
Ubuntu/Debian:
[root@proxy squid]# apt-get install -y apache2-utils
為名為 proxy_user 的用戶生成密碼。
[root@proxy squid]# htpasswd -b -c squid_users proxy_user e7aB4AmpUvFDj6E 為用戶 proxy_user 添加密碼
上面的命令有 3 個參數:
- squid_users – 保存用戶密碼的文件名,
- proxy_user – 用戶名
- e7aB4AmpUvFDj6E – 密碼
檢查密碼是否生成成功。
[root@proxy squid]# cat squid_users 代理用戶:$apr1$Zac9nPwt$pbDUf3LsyWdeIei.JLcwF。
如果 Squid 服務尚未運行,請啟動它。
[root@proxy squid]# systemctl status squid ● squid.service - Squid 緩存代理 已加載:已加載(/usr/lib/systemd/system/squid.service;已禁用;供應商預設:已禁用) 活躍:不活躍(死) [root@proxy squid]# systemctl start squid [root@proxy squid]# systemctl status squid ● squid.service - Squid 緩存代理 已加載:已加載(/usr/lib/systemd/system/squid.service;已禁用;供應商預設:已禁用) 活動:自 2021 年 9 月 8 日星期三 12:56:37 UTC 起活動(運行);3 秒前 進程:1342 ExecStop=/usr/sbin/squid -k shutdown -f $SQUID_CONF (code=exited, status=0/SUCCESS) 進程:1349 ExecStart=/usr/sbin/squid $SQUID_OPTS -f $SQUID_CONF (code=exited, status=0/SUCCESS) 進程:1344 ExecStartPre=/usr/libexec/squid/cache_swap.sh (code=exited, status=0/SUCCESS) 主PID:1351(魷魚) CGroup:/system.slice/squid.service ├─1351 /usr/sbin/squid -f /etc/squid/squid.conf └─1353 (squid-1) -f /etc/squid/squid.conf 9 月 8 日 12:56:37 代理 systemd[1]:停止 Squid 緩存代理。 9 月 8 日 12:56:37 代理 systemd[1]:啟動 Squid 緩存代理... 9 月 8 日 12:56:37 代理 systemd[1]:啟動 Squid 緩存代理。 Sep 08 12:56:37 proxy squid[1351]: Squid Parent: will start 1 kids 9 月 8 日 12:56:37 代理 squid[1351]:Squid Parent:(squid-1)進程 1353 已啟動
檢查代理是否可訪問并與任何支持 HTTP 代理的客戶端一起使用。例如:
curl -x http://proxy_user:e7aB4AmpUvFDj6E@2.58.28.45:17102 ipinfo.io { “ip”:“2.58.28.45”, “城市”:“倫敦”, “地區”:“英格蘭”, “國家”:“國標”, "loc": "51.5085,-0.1257", "org": "AS61317 IPXO UK Ltd.", “郵政”:“EC1A”, “時區”:“歐洲/倫敦”, “自述文件”:“https://ipinfo.io/missingauth”